#pragma once
#include "GePoint2.h"
#include <vector>
namespace tge
{
	class GePoly2d :public std::vector < GePoint2d >
	{
	public:
		bool bIsClosed;
	public:
		GePoly2d();
		~GePoly2d();
	};
	class GePoly2dArray
	{
		std::vector < GePoly2d * >m_arrPoly;
	public:
		GePoly2dArray&operator=(const GePoly2dArray&arrPoly)=delete;
		GePoly2dArray(const GePoly2dArray & arrPoly)=delete;
	public:
		GePoly2dArray();
		~GePoly2dArray();
		void clear();
		size_t size()const;
		void push_back(GePoly2d*py);
		GePoly2d*operator[](int idx);
		const GePoly2d*operator[](int idx)const;
	public:
// 		friend  GePoly2dArray operator+(const GePoly2dArray & poly1, const GePoly2dArray & poly2);
// 		friend  GePoly2dArray operator*(const GePoly2dArray & poly1, const GePoly2dArray & poly2);
// 		friend  GePoly2dArray operator-(const GePoly2dArray & poly1, const GePoly2dArray & poly2);
	};


	void SimplifyPolyline(const GePoly2dArray & poly, GePoly2dArray &polyOut, int nWingdingRule, bool bNormalToMe = TRUE);
}
